﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace KuPeiXun.Dao.Action.Ado
{
    #region 州省表数据Ado技术访问
    /// <summary>
    /// 州省表数据Ado技术访问
    /// </summary>
    /// ===============================================================
    /// 作者：邹学良 
    /// 时间：2013-03-23
    /// 描述：创建
    /// 历史：无
    /// ===============================================================
    public class Province:KuPeiXun.Dao.IProvince
    {
        #region 数据访问对象
        /// <summary>
        /// 数据访问对象
        /// </summary>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        private KuPeiXun.Dao.IProvince dao = null;
        #endregion

        #region 构造函数 通过数据库类型获取不同数据库访问对象
        /// <summary>
        /// 构造函数 通过数据库类型获取不同数据库访问对象
        /// </summary>
        /// <param name="database"></param>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        public Province(KuPeiXun.Common.Enum.DataBaseType database)
        {
            try
            {
                switch (database)
                {
                    case Common.Enum.DataBaseType.SQLServer:
                        this.dao = new KuPeiXun.Dao.Action.Ado.SqlServer.Province();
                        break;
                }
            }
            catch (Exception ex)
            {
                throw new KuPeiXun.Utility.LogHepler(ex);
            }
        }
        #endregion

        #region 基本操作

        #region 添加一个州省数据
        /// <summary>
        /// 添加一个州省数据
        /// </summary>
        /// <param name="entity">州省实体</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        public Guid Insert(KuPeiXun.Entity.Province entity)
        {
            try
            {
                Guid newid = this.dao.Insert(entity);
                return newid;
            }
            catch (Exception ex)
            {
                throw new Utility.LogHepler(ex);
            }
        }
        #endregion

        #region 更新一个州省数据
        /// <summary>
        /// 更新一个州省数据
        /// </summary>
        /// <param name="entity">州省实体</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        public bool Update(KuPeiXun.Entity.Province entity)
        {
            try
            {
                bool result = this.dao.Update(entity);
                return result;
            }
            catch (Exception ex)
            {
                throw new Utility.LogHepler(ex);
            }
        }
        #endregion

        #region 删除一个州省数据
        /// <summary>
        /// 删除一个州省数据
        /// </summary>
        /// <param name="id">州省id</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        public bool Delete(Guid id)
        {
            try
            {
                bool result = this.dao.Delete(id);
                return result;
            }
            catch (Exception ex)
            {
                throw new Utility.LogHepler(ex);
            }
        }
        #endregion

        #region 删除多个州省数据
        /// <summary>
        /// 删除多个州省数据
        /// </summary>
        /// <param name="idlist">州省id列表</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        public bool DeleteRang(List<Guid> idlist)
        {
            try
            {
                bool result = this.dao.DeleteRang(idlist);
                return result;
            }
            catch (Exception ex)
            {
                throw new Utility.LogHepler(ex);
            }
        }
        #endregion

        #endregion

        #region 获取数据

        #region 通过ID获取州省对象
        /// <summary>
        /// 通过ID获取州省对象
        /// </summary>
        /// <param name="id">州省ID</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        public KuPeiXun.Entity.Province SelectSingleById(Guid id)
        {
            try
            {
                KuPeiXun.Entity.Province entity = this.dao.SelectSingleById(id);
                return entity;
            }
            catch (Exception ex)
            {                 
                throw new Utility.LogHepler(ex);
            }
        }
        #endregion

        #region 通过名称获取州省对象
        /// <summary>
        /// 通过名称获取州省对象
        /// </summary>
        /// <param name="name">名称</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        public KuPeiXun.Entity.Province SelectSingleByName(string name)
        {
            try
            {
                KuPeiXun.Entity.Province entity = this.dao.SelectSingleByName(name);
                return entity;
            }
            catch (Exception ex)
            {
                throw new Utility.LogHepler(ex);
            }
        }
        #endregion

        #region 通过名称,国家Id获取州省对象
        /// <summary>
        /// 通过名称,国家Id获取州省对象
        /// </summary>
        /// <param name="name">名称</param>
        /// <param name="countryid">国家Id</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        public KuPeiXun.Entity.Province SelectSingleByName(string name, Guid countryid)
        {
            try
            {
                KuPeiXun.Entity.Province entity = this.dao.SelectSingleByName(name, countryid);
                return entity;
            }
            catch (Exception ex)
            {                
                throw new Utility.LogHepler(ex);
            }
        }
        #endregion

        #region 通过关键字，数据列表条件获取州省数据列表
        /// <summary>
        /// 通过关键字，数据列表条件获取州省数据列表
        /// </summary>
        /// <param name="keystr">关键字</param>
        /// <param name="listparameter">数据列表条件</param>
        /// <param name="datacount">数据总数</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        public List<KuPeiXun.Entity.Province> SelectList(string keystr, KuPeiXun.Common.Entity.ListParameter listparameter, out int datacount)
        {
            try
            {
                List<KuPeiXun.Entity.Province> list = this.dao.SelectList(keystr, listparameter, out datacount);
                return list;
            }
            catch (Exception ex)
            {                
                throw new Utility.LogHepler(ex);
            }
        }
        #endregion

        #region 通过关键字，数据列表条件，管理员ID获取州省数据列表
        /// <summary>
        /// 通过关键字，数据列表条件，管理员ID获取州省数据列表
        /// </summary>
        /// <param name="keystr">关键字</param>
        /// <param name="managerid">管理员id</param>
        /// <param name="listparameter">数据列表条件</param>
        /// <param name="datacount">数据总数</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        public List<KuPeiXun.Entity.Province> SelectList(string keystr, Guid managerid, KuPeiXun.Common.Entity.ListParameter listparameter, out int datacount)
        {
            try
            {
                List<KuPeiXun.Entity.Province> list = this.dao.SelectList(keystr, managerid, listparameter, out datacount);
                return list;
            }
            catch (Exception ex)
            {                
                throw new Utility.LogHepler(ex);
            }
        }
        #endregion

        #region 通过关键字，数据列表条件，国家ID获取州省数据列表
        /// <summary>
        /// 通过关键字，数据列表条件，国家ID获取州省数据列表
        /// </summary>
        /// <param name="keystr">关键字</param>
        /// <param name="countryid">国家id</param>
        /// <param name="listparameter">数据列表条件</param>
        /// <param name="datacount">数据总数</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        public List<KuPeiXun.Entity.Province> SelectListByCountryId(string keystr, Guid countryid, KuPeiXun.Common.Entity.ListParameter listparameter, out int datacount)
        {
            try
            {
                List<KuPeiXun.Entity.Province> list = this.dao.SelectListByCountryId(keystr, countryid, listparameter, out datacount);
                return list;
            }
            catch (Exception ex)
            {                
                throw new Utility.LogHepler(ex);
            }
        }
        #endregion

        #region 通过关键字，数据列表条件，国家ID，管理员Id获取州省数据列表
        /// <summary>
        /// 通过关键字，数据列表条件，国家ID，管理员Id获取州省数据列表
        /// </summary>
        /// <param name="keystr">关键字</param>
        /// <param name="countryid">国家id</param>
        /// <param name="managerid">管理员Id</param>
        /// <param name="listparameter">数据列表条件</param>
        /// <param name="datacount">数据总数</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        public List<KuPeiXun.Entity.Province> SelectListByCountryId(string keystr, Guid countryid, Guid managerid, KuPeiXun.Common.Entity.ListParameter listparameter, out int datacount)
        {
            try
            {
                List<KuPeiXun.Entity.Province> list = this.dao.SelectListByCountryId(keystr, countryid, managerid, listparameter, out datacount);
                return list;
            }
            catch (Exception ex)
            {                
                throw new Utility.LogHepler(ex);
            }
        }
        #endregion

        #endregion
    }
    #endregion
}
